import fitz  # PyMuPDF


def remove_watermark(pdf_path, output_path):
    doc = fitz.open(pdf_path)

    for page_num in range(len(doc)):
        page = doc.load_page(page_num)
        # 获取页面的所有绘制指令（包含所有文本、图像、路径）
        drawing = page.get_drawings()

        # 这里需要您根据水印的特征进行判断，例如：
        # - 遍历所有文本，如果文本包含"比特"则删除
        # - 或者删除所有位于页面底部、颜色为灰色的元素
        # 以下是一个示例：删除所有文本对象
        for block in page.get_text("dict")["blocks"]:
            if 'lines' in block:
                for line in block["lines"]:
                    for span in line["spans"]:
                        # 如果文本中包含"比特"或"就业课"等关键字，则将其删除
                        if "比特" in span["text"] or "就业课" in span["text"]:
                            rect = fitz.Rect(span["bbox"])
                            page.add_redact_annot(rect, fill=(1, 1, 1))  # 用白色矩形遮盖
                            page.apply_redactions()  # 应用遮盖

    doc.save(output_path)
    doc.close()


# 使用函数
remove_watermark("MySQL存储过程和触发器专题.pdf", "Cleaned_MySQL_Guide.pdf")